package br.com.async.application;

import java.util.Calendar;
import java.util.List;
import java.util.Set;

import br.com.async.domain.reserve.Reserve;
import br.com.async.domain.reserve.Shift;
import br.com.async.domain.reserve.Time;

public interface ReserveApplication extends AbstractApplication<Reserve, Integer>{

	public List<Reserve> findReserveByCriterions(Integer roomCode, Calendar date, Shift shift);
	public Reserve findUniqueReserveByCriterions(Integer roomCode, Calendar date, Shift shift);
	public List<Reserve> findReserveByCriterions(String roomName, Calendar date, Shift shift);
	public List<Reserve> findReserveForRomAndDate(String room, Calendar date);
	public List<Time> findTimeFreeFromReserve(Reserve reserve);
	public List<Shift> verifyShiftFree(String room, Calendar date);
	public List<Reserve> findReserveByResponsible(Integer respCode);
	public List<Reserve> findReserveByCriterions(
			Calendar date);
	public List<Reserve> findReserveByCriterions(Integer respCode, Calendar date);
	
}
